﻿using System.Diagnostics.CodeAnalysis;

namespace PhoneNetTools.Dns
{
    /// <summary>
    /// Possible OpCode values as defined in RFC 1035
    /// </summary>
    public enum OpCode
    {
        /// <summary>
        /// A standard query (QUERY).
        /// </summary>
        StandardQuery = 0, 

        /// <summary>
        /// An inverse query (IQUERY).
        /// </summary>
        InverseQuery = 1, 

        /// <summary>
        /// A server status request (STATUS).
        /// </summary>
        ServerStatusRequest = 2, 

        /// <summary>
        /// Reserved for future use.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1700:DoNotNameEnumValuesReserved", Justification = "This is not my decision, the API is as it stands.")]
        Reserved3, 

        /// <summary>
        /// Reserved for future use.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1700:DoNotNameEnumValuesReserved", Justification = "This is not my decision, the API is as it stands.")]
        Reserved4, 

        /// <summary>
        /// Reserved for future use.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1700:DoNotNameEnumValuesReserved", Justification = "This is not my decision, the API is as it stands.")]
        Reserved5, 

        /// <summary>
        /// Reserved for future use.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1700:DoNotNameEnumValuesReserved", Justification = "This is not my decision, the API is as it stands.")]
        Reserved6, 

        /// <summary>
        /// Reserved for future use.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1700:DoNotNameEnumValuesReserved", Justification = "This is not my decision, the API is as it stands.")]
        Reserved7, 

        /// <summary>
        /// Reserved for future use.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1700:DoNotNameEnumValuesReserved", Justification = "This is not my decision, the API is as it stands.")]
        Reserved8, 

        /// <summary>
        /// Reserved for future use.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1700:DoNotNameEnumValuesReserved", Justification = "This is not my decision, the API is as it stands.")]
        Reserved9, 

        /// <summary>
        /// Reserved for future use.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1700:DoNotNameEnumValuesReserved", Justification = "This is not my decision, the API is as it stands.")]
        Reserved10, 

        /// <summary>
        /// Reserved for future use.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1700:DoNotNameEnumValuesReserved", Justification = "This is not my decision, the API is as it stands.")]
        Reserved11, 

        /// <summary>
        /// Reserved for future use.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1700:DoNotNameEnumValuesReserved", Justification = "This is not my decision, the API is as it stands.")]
        Reserved12, 

        /// <summary>
        /// Reserved for future use.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1700:DoNotNameEnumValuesReserved", Justification = "This is not my decision, the API is as it stands.")]
        Reserved13, 

        /// <summary>
        /// Reserved for future use.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1700:DoNotNameEnumValuesReserved", Justification = "This is not my decision, the API is as it stands.")]
        Reserved14, 

        /// <summary>
        /// Reserved for future use.
        /// </summary>
        [SuppressMessage("Microsoft.Naming", "CA1700:DoNotNameEnumValuesReserved", Justification = "This is not my decision, the API is as it stands.")]
        Reserved15
    }
}